Method and system for compiling a unique sample code for a digital sample

ABSTRACT

Methods for providing a digital sample with a unique sample code. Methods for gaining access to a digital sample provided with a unique sample code. Computer-readable media with computer-executable instructions and compiled sample codes for accessing digital samples, including physical embodiment of codes such as bar codes or other visually perceptible, radio frequency identification (RFID) codes. Databases comprising one or a multiple such sample codes. Systems for compiling a unique sample code and systems for handling a user&#39;s request for gaining access to a digital sample provided with a sample code. User devices with resources to use sample codes and obtain access to corresponding digital samples.

This application claims priority to PCT/NL2010/050303 filed May 20, 2010 and published as WIPO WO 2010/134813 A1 on Nov. 25, 2010, which claims priority to NL Patent Application 2002909 filed May 20, 2009; NL Patent Application 2003447 filed Sep. 7, 2009; and PCT/NL2009/050598 filed Oct. 6, 2009, each of which is hereby incorporated herein by reference.

BACKGROUND

Some embodiments described herein relate to a method for compiling a world-wide unique sample code for a digital sample. Some embodiments described herein also relate to a method for providing a digital sample with such a unique sample code. Some embodiments described herein further relate to a method for gaining access to a digital sample provided with such a unique sample code. Some embodiments described herein moreover relate to a computer-readable medium with computer-executable instructions which, when loaded onto a computer system, provide the computer system with the functionality of any of the aforementioned methods. Some embodiments described herein additionally relate to a sample code as compiled by the above method. Some embodiments described herein further relate to a database comprising one or a multiple of such sample codes. Some embodiments described herein additionally relate to a system for compiling a unique sample code using the above method. Some embodiments described herein also relate to a system for handling a user's request for gaining access to a digital sample provided with a sample code according to an embodiment.

‘Globalization’ is commonly used as a shorthand way of describing the spread and connectedness of production, communication and technologies across the world. That spread has involved the interlacing of economic and cultural activity. This globalization in the sense of connectivity in economic and cultural life across the world, has been growing for centuries. However, many believe the current situation is of a fundamentally different order to what has gone before. The speed of communication and exchange, the complexity and size of the networks involved, and the sheer volume of trade, transaction, interaction and risk give what we now label as ‘globalization’ a peculiar force. One has described globalization as the intensification of world-wide social relations which link distant localities in such a way that local happenings are shaped by events occurring many miles away and vice versa. This involves a change in the way we understand geography and experience localness. As well as offering opportunity it also brings considerable risks linked, for example, to marketing, technological change, climate change and business control.

Globalization, thus, has powerful economic, political, cultural and social dimensions. Developments in the life sciences, and in digital technology and the like, have opened up vast, new possibilities for production, reach and exchange. Innovations like the Internet have made it possible to access information and resources across the world and to coordinate activities in real time. An important downside of the globalization however is the creation of diffuse markets in which it is becoming harder and harder to control product marketing and demand and supply chain/network processes leading to a considerable increase of the uncontrollable number of illegal copies available using peer-to-peer (P2P) technologies. End-user piracy, which is different from commercial piracy, is much more difficult to control. An auxiliary drawback of these P2P technologies is that Internet traffic has grown enormously. Projections indicate that the Internet traffic will greatly increase, leading to pressure on data traffic and storage and resulting in an increased bandwidth demand on the world's Internet networks. Moreover, this Internet traffic and storage increase will require improved hardware, software and data facilities regardless of their context. Present electrical energy consumption of the Internet is already substantial and is expected to increase significantly in the coming years.

An embodiment can help to facilitate tracking and tracing legitimate digital products to protect owners and other parties involved in the product demand and supply chain against infringement of intellectual property rights and to protect both owner and customer against fraudulent distribution by sharing of digital products.

Such embodiment or another embodiment can help to reduce the Internet traffic and storage load to some extent, which is considered beneficial from both a financial and an environmental point of view.

An embodiment is directed to a method for compiling a unique sample code for a digital sample, comprising: A) defining at least one sample code template comprising multiple sample code segments to be used for building a sample code for a digital sample, said sample code segments at least comprising: a sample owner identifying code segment, and a sample identifying code segment; B) specifying the content of the sample code segments to be used for building said sample code, wherein the sample owner identifying code segment is specified by an Internet address, in particular an IP address or (a part of) a domain name, of an owner of the digital sample, C) stringing the specified sample code segments to form the sample code, D) defining a digital path to a digital location via which access can be gained to the digital sample, and E) creating a cross-reference between the sample code generated during step C) and the digital path defined during step D) in case the sample code and the digital path are mutually distinctive.

Some embodiments relate to methods for identifying and accessing a unique digital item, referred to as a digital sample. The digital sample may comprise an item such as a book, contract, music file, video file, web page, web content, an Internet index file, or any other digital item. The digital sample is identified and accessed using a unique sample code that is compiled in accordance with some embodiments. Thus, the code and use of the code in various embodiments described herein can be of help, for example, when one wants to correctly identify such a digital sample (such as document or file or other digital sample). The code may also help to trace and assure authenticity of the digital sample, to restrict or provide access to the digital sample, to distribute the digital sample to selected recipients, to sell or otherwise monetize the digital sample or to otherwise help provide distribution of or access to the digital sample.

As an example, a unique sample code may be provided for a music file. A user is provided access to the music file, and the music file is identified, based on the sample code. Further, the sample code may be embedded into the music file to facilitate tracking and tracing of the music file.

Various embodiments relate to the respective methods for compiling the unique sample code for a digital sample. The sample code may be compiled from a combination of multiple elements or segments. The code is compiled based on a combination of i) identification of the owner of the digital sample and ii) identification of the digital sample. Additional or other items may be used to create the code, such as a) identifications of intermediary distributors of the digital sample, b) error checking codes, c) path or address, d) various forms of metadata, and e) other information. A template may be used to define such segments that are used for building the sample code. Thus, according to an embodiment, code may be built through stringing together multiple code segments used for building the sample code, and the combination of these segments may be defined based on a template. Different templates containing different elements or types of elements may be defined for different purposes, according to various embodiments. The sample code that is compiled using the respective template can then be used to identify or access the digital sample, or to perform other operations related to the digital sample.

A path may be formed to a location of the digital sample and a cross reference can be created between the code that is generated and the digital sample. In this way, according to an embodiment, the code can be used to identify and locate the digital sample. Further, the sample code may be embedded into the digital sample to facilitate tracking and tracing of the sample.

Among other things, various embodiments are directed to:

-   -   Methods for providing a digital sample with a unique sample         code.     -   Method for gaining access to a digital sample provided with a         unique sample code.     -   Computer-readable media with computer-executable instructions         which, when loaded onto a computer system, provide the computer         system with the functionality of any of the methods described         herein.     -   Sample codes as compiled by any of the methods described herein,         including physical embodiment of codes such as bar codes or         other visually perceptible, radio frequency identification         (RFID) codes, and other codes, including any such codes embedded         in documents or objects.     -   Databases comprising one or a multiple of such sample codes.     -   Systems for compiling a unique sample code using any of the         methods described herein.     -   Systems for handling a user's request for gaining access to a         digital sample provided with a sample code.     -   User devices with resources to use sample codes and obtain         access to corresponding digital samples.

By labelling each world-wide unique digital sample with a world-wide unique product sample code acting as a world-wide unique identifier, comparable with a DNA profile or fingerprint of the sample, one specific digital sample can be traced and distinguished easily and unambiguously from another digital sample, and thus each digital sample can be identified throughout the world regardless of its context. This world-wide unique identification can be facilitated by the recognizable (identifiable) incorporation of the IP address and/or the domain name of a (present or prior) owner of the digital sample. Moreover, since the digital sample code is associated with a digital path to a digital location where the digital sample, and eventual further information (metadata) relating to said digital sample, is stored and can be traced/found, it can be verified relatively easily whether the digital sample has been manipulated or is authentic. This may considerably facilitate assessment of the authenticity of the digital sample and may hence facilitate tracking and tracing of the digital sample. Commonly, the digital sample will not be moved once stored at the digital location. In case the digital sample would still be moved to another digital or physical location, the cross-reference between the sample code and the digital path can be correspondingly updated, so the sample code is permanently up to date and gives permanent access to the digital sample. Hence, dead links due to changes of the digital paths to digital locations where digital samples are stored can be eliminated in this manner.

A digital sample, also considered as a single individual digital entity, is thus defined to have a unique identity and to be distinguishable (individualizable) and hence trackable and traceable with certainty from all other digital samples in the scope of its specification criteria. A digital sample as an individual entity therefore differs from a digital product series, a digital product category, or a digital product variety. The nature and representation of the term “digital sample” as used herein should be interpreted broadly and could include a digital file, a digital textual description, a digital image, a digital collection of multiple digital samples, a digital transaction, or a digital service. The term “owner” incorporates (among others) the originator, publisher, distributor, author, and creator provided that an actual or previous ownership of the digital sample can be deduced from the IP address and/or the domain name of the owner as used and visualized in the sample code itself. The term “digital location” can be a location at a computer of the owner as code issuing party, though it can also be a remote location in a private or public cloud computing infrastructure employing Internet-based computing, whereby shared resources, software and information are provided to computers and other devices on-demand, like a public utility. The sample codes may be stored in a computing cloud, while the digital samples are stored in a location separate from the computing cloud, which would reduce the traffic load within the cloud and would also be beneficial for security reasons.

Each unique digital file is marked with a world-wide unique sample code. This sample code may represent a file name of the digital sample and/or may be embedded in the digital sample. Sharing the digital sample may be realised by simply sharing the sample code as such, which can provide a lead to the location where the digital sample is stored. Since simply sharing the sample code (approximately 1 kilobyte, for example) is sufficient to allow authorized sharing of the digital sample (normally significantly larger than 1 kilobyte), and exchanging the digital sample as such is no longer necessary, which can help lead to a significant reduction of the Internet traffic and reduce the cost of data storage which is advantageous from a financial, safety-related and environmental point of view.

The sample code segments are selectively ordered to build an identifying path referring either directly or indirectly to a digital location, in particular a web location, where the digital sample can be found. The digital path may commonly represent a Uniform Resource Locator (URL) which may (automatically) be provided with a prefix, such as http, https, ftp, ftps, mailto, file, by a web browser. In an embodiment, at least a part of the digital path is identical to the sample code, meaning that the sample code is incorporated in the digital path. In case the sample code and the digital path are substantially identical, creating a cross-reference in accordance with step E) may be omitted. In this respect, the term “substantially identical” is being used to show that there may be minor differences between the sample code and the digital path which do not have any effect in practice. For example, although the digital path will commonly have a prefix, such as “http://”, such a prefix may not be present in the visualized sample code itself. However, since most web browsers will automatically add a prefix in front of a web address not already having such a prefix, the sample code as such may easily be used as web address (digital path) leading to a web location (digital location) where the requested digital sample is stored.

In an embodiment, the method includes step F) comprising storing the sample code, the digital path, and the cross-reference between the sample code and the digital path in a database. Storing the cross-reference as a link between the sample code and the digital path can facilitate translating the sample code into a digital path where the digital sample can be found. Moreover, storage of this data can facilitate updating the cross-references in case of a change of the digital path in order to prevent unlinking (dead linking) of the sample code with respect to the actual location where the digital sample is stored and can be traced and found.

The method optionally comprises step G) comprising converting the sample code generated during step C) into a machine-readable format. In case the sample code is printed or displayed on a screen, the sample code may be read, for example, by using an optical scanner. By applying optical character recognition, the scanned sample code can be converted into a set of characters identical to the sample string of the sample code, which can subsequently be entered either automatically or manually into a web browser. The machine-readable sample code may also be represented in a digital or physical encrypted iconographic format, such as a 2D/3D barcode and/or a RFID tag. It should be noted that while these iconographic representations look similar to conventional iconographic representations, the content, meaning, and use of the iconographic representation of the sample code is completely different from the conventional iconographic representation of known sample series and/or categories codes.

Alternatively, the method comprises step H) comprising translating at least the sample identifying code segment of the sample code into another language and matching characters. Since the sample identifying code segment may comprise metadata relating to the digital sample associated with the sample code, the metadata providing relevant recognizable information about the digital sample, it may be user-friendly to offer and display these metadata in the language of the location/country where the digital sample code is issued. An example of possible metadata incorporated and named in the at least one sample identifying code segment is information relating to the author, title, subject, keywords, size, version, date of creation, remarks, and/or status of the digital sample.

The IP address and/or the domain name of an owner as incorporated in the owner identifying code segment is normally not translated and normally remains unchanged during step H).

In an embodiment the sample code segments defined during step A) further comprise a user related code segment which may either be static or dynamic (dependent on one or more parameters which change in course of time). Although each sample code, irrespective of the presence of a user related code segment, already functions as a world-wide unique personal code, one advantage provided by incorporating a user related code segment is that the content stored at the digital location can be made more personal to the user. If agreed upon, personal information of the customer such as a client number, pseudonym and/or personal permissions (e.g., read/write permissions), can be displayed as content at the digital location and/or as metadata incorporated in the user related code segment. This user information may be static which therefore results in a static user related code segment. It is also imaginable that the user related segment incorporates user related information (metadata) which varies with the course of time, such as the age of the user or the user credits. Once issued, the sample code generally will not change, but the sample code issued may be dependent on parameters which are applicable at the moment of issuing the sample code. In practice, this would commonly require a last-minute compilation of the product sample code after registration of relevant user data, such as name, address, et cetera. It is conceivable that the user related code segment comprises a user identifying code segment. In this manner, the identity, such as the name of the user, is evident from metadata represented by the code segments.

It is further imaginable that the sample code string comprises at least one intermediary identifying code segment relating to the identity of an intermediary e.g., used to manufacture, supply, support, distribute, sell, and/or promote the product sample. The intermediary identifying code segment, optionally based on the domain name or IP address of the intermediary, may comprise the identity of the intermediary but may also comprise other metadata relating to the intermediary, such as a platform or service offered to the public via which digital samples can be accessed. One example is related to the distribution of music files via a music publishing service, such as Apple's iTunes, in which music files may originate from the company EMI Music Publishing. A sample code associated with a specific digital sample may be represented as follows: “www.emi.com/itunes.com/beatles-yesterday-12345”, wherein “www.emi.com” represents the owner identifying code segment, “iTunes.com” represents the intermediary identifying segment, and “beatles-yesterday-12345” represents the digital sample identifying segment including metadata relating to the artist, the title, and a unique identification number of the digital sample. The sample code may also represent a web link to a location where the specific music file is stored, though the sample code may also be a cross-reference to another web link leading to the specific music file.

It may be beneficial during step A) to define at least one punctuation mark for separating adjacent code segments during step C). A variety of punctuation marks can be used, though since the sample code often functions as URL, a slash (‘/’) sign may be used to separate adjacent code segments. In a correct URL syntax commonly a slash sign is also positioned behind the last code segment. In addition to these separation characters, other typographic signs, such as a tilde (‘˜’), a dot (‘.’), an underscore (‘_’), and a minus sign (‘−’), may also be used within the code segments themselves and/or between the code segments.

In an embodiment, the sample code string comprises at least one checking code segment representing the result of a predetermined mathematical processing of at least one other sample code segment. The algorithm used to calculate the value of the checking code segment can be defined when the sample code structure is defined during compilation of the sample code. This algorithm may for example use or have similarities with the known category coding system ISBN (International Standard Book Number) code check. The algorithm for generating an ISBN check characters works as follows. To generate the ISBN check character, each ISBN digit is multiplied by a predetermined associated weighting factor and the resulting products are added together. The weighting factors for the first nine digits begin with 10 and form the descending series 10, 9, 8 . . . 2. Thus for the nine digits 0 9 4 0 0 1 6 3 3, the products summed are 0+81+32+0+0+5+24+9+6=157. This sum is divided by the number 11. (157/11=14 with 3 remainder). The remainder, if any, is subtracted from 11 to get the check digit. (11−3=8). If the check digit is 10, it is represented by the Roman numeral X. The final ISBN in this example is accordingly 0-940016-33-8. By generating the check digit and comparing it with the received check digit, the validity of the ISBN may be verified. As mentioned above, a similar or comparable check may be incorporated in the sample code.

In another embodiment the sample code segments defined during step A) further comprises a sample code security identifying code segment. Application of this code segment may counteract abuse of the sample code by parties with malicious intent, since this security identifying code segment can be used as a check to determine the authenticity of the sample code. For example, after entering the sample code into a web browser, a validity check of the sample code security identifying code segment may be performed. This security related code segment may be time-dependent (“dynamic”), meaning that the code segment will only be valid for a limited period of time. In case the security check shows that the sample code is no longer valid or in force, access to the digital sample may be refused. The security identifying code segment hence acts as an interactive key to gain access to the digital sample file.

During step A) not only the number and kind of the code segments used to build a code may be defined, but also the order of defined code segments to be stringed may also be defined. This allows for creation of a complete sample code template (code format), wherein code segments are ordered in a predetermined order. Determining the order of code segments during step A) can enhance the handling of sample codes and co-related storage locations of the digital samples.

In an embodiment, step A) may be repeatedly performed to generate multiple sample code templates, wherein the method further comprises step I) comprising choosing a code template to be applied prior to executing step B). Generating multiple templates may allow for additional differentiation in sample codes provided to users. For example, a party may offer digital samples directly to customers and indirectly to customers by making use of an intermediary. In doing so, different sample code templates may be used, where the direct customers may receive a code such as “www.owner.com/sample_id_(—)1234” which does not use an intermediary, while indirect customers may receive a code such as “www.owner.com/intermediary.com/sample_id_(—)5678” which utilizes an intermediary.

The aforementioned method may be performed using a software module having a user interface to allow the user to generate a world-wide unique sample code.

An embodiment also relates to a method for providing a digital sample with a unique sample code, comprising: J) creating a digital sample, K) compiling a unique sample code for the digital sample according to the method described above, L) marking the digital sample with at least one compiled sample code, M) storing the digital sample at a digital location, N) storing the sample code, and O) creating a cross-reference between a digital path referring to said digital location and the sample code in case the sample code and the URL are mutually distinctive. Marking the sample with the digital sample code according to step L) may facilitate tracking and tracing of the digital sample in case the digital sample is downloaded from a secure environment such as a web server owned or operated by the owner. In case of streaming of the content of the digital sample, e.g., in case the digital sample is a music file or a video file, a user may not be able to download the specific sample, which may result in an improved distribution control of the digital sample. A digital sample may be labelled with multiple unique sample codes. The multiple unique sample codes may be embedded in the digital sample and may not be recognized by a standard user. For example, embedding multiple sample codes into one digital sample could be advantageous if the digital sample is a multimedia file which is distributed to multiple users, with each user having his own unique sample code to access the digital sample.

In an embodiment, the method may include step P) comprising providing the sample code to a user, for example the creator of the digital sample. This may be performed by sending the user an e-mail which includes the sample code. The sample code may be displayed as plain text in the body of the email which contains a hyperlink. Alternatively, the sample code may be attached as a separate attachment to the email. Since the sample code is commonly represented by a string of a limited number of alphanumeric signs and punctuation marks, the sample code is commonly no larger than 1 kilobyte. Since only the sample code and not the digital sample is distributed, Internet traffic and storage load may be significantly reduced. By storing sample codes instead of the sample files in a computing cloud, users can be offered a secure exchange of information in cloud computing environment.

The sample code may represent at least a part of the file name of the digital sample. It is however also conceivable and may be preferable that the sample code is embedded as metadata into the digital sample forming a tag, mark, or label of the digital sample, which facilitates tracking and tracing of the digital sample. The embedded sample code may be kept either visible or invisible (code inside the sample) for standard users. An embodiment comprises a digital sample that has a sample code according to any of the embodiments described herein.

An embodiment further relates to a method for gaining access to a digital sample provided with a unique sample code according to the method defined above, comprising: Q) providing the sample code to a user, R) allowing the user to enter the sample code into a web browser, and S) redirecting the user to the digital location where the digital sample is stored. When the user is redirected to the digital location, access to the digital file can be gained. Redirecting to may be considered as referring to. For example the redirection may be either direct or indirect. Direct redirection may refer to entering the sample code as a web address into an address bar of a web browser, where the digital sample is stored at said web address. In comparison, indirect redirection may refer to entering the sample code into the web browser and translating the sample code into a digital path such as a URL by using a cross-reference database or table, after which the user is led to the digital path where the digital sample is stored. During step S) the sample code entered during step R) may be compared with a corresponding sample code stored in the database, wherein the user is redirected to a digital path stored in the database as a cross-reference of the stored sample code. Indirect redirection may be implemented by using a programmed script for automatically comparing the entered sample code with the sample codes in the database, and directing the user to the digital location where the digital sample is stored.

An embodiment moreover relates to a computer-readable medium with computer-executable instructions which, when loaded onto a computer system, provide the computer system with the functionality of the method for compiling a sample code, and/or the method of providing a sample code to a digital sample as described above. Examples of computer-readable media are USB-sticks, internal and external hard drives, diskettes, CD-ROM's, DVD-ROM's, and others.

An embodiment additionally relates to a sample code as compiled by the above method. Advantages of the use of a world-wide unique sample code acting as a “fingerprint” have already been described herein.

An embodiment also relates to a database comprising at least one cross-reference between a sample code according to an embodiment and a digital path to a digital location where a digital sample associated with said sample code is stored. The use of such a cross-reference table allows the sample code to be converted into a digital path to a digital location where the digital sample can be found.

An embodiment further relates to a system for compiling a world-wide unique sample code using the above method, comprising: at least one sample code template generator for defining at least one sample code template comprising multiple sample code segments to be used for building a sample code for a digital sample, said sample code segments at least comprising a sample owner identifying code segment, and a sample identifying code segment, at least one sample code segment specification module connected to said template generator for specifying the content of the sample code segments defined by means of the code template generator, wherein the sample owner identifying code segment is specified by an address of an owner of the digital sample, at least one code generator connected to said template generator and said specification module for stringing the specified sample code segments to form the world-wide unique sample code, and at least one database for storing at least one cross-reference between a generated sample code and a digital path to a digital location via which access can be gained to the digital sample in case the sample code and the digital path are mutually distinctive. For example, some embodiments of the sample code have already been described herein.

In some embodiments, the system may be a (cloud) computer-implemented system which may be fully automated after proper setup and initialization. An embodiment of the system may further include at least one service module for administering the system for issuing a sample code. A digital user/administrator interface for controlling and maintaining the template generator, the specification module, and the code generator are included in the system according to an embodiment. The system may additionally include a sample storage device for storage of a digital sample at a digital location at which the digital path is stored in the database. An example of a suitable sample storage device is a web server, optionally in the cloud.

In an embodiment, the system further includes a distribution/communication module for distributing/communicating the generated sample code to one or more users.

An embodiment relates to a system for handling a request for gaining access to a digital sample provided with a sample code according to the method described above, comprising: a web client for allowing a user to enter the sample code, a handling module connected to said web client for comparing the sample code entered with a corresponding sample code stored in a database as defined in the aforementioned system, wherein the user is redirected to a digital path stored in said database as cross-reference of said stored sample code for gaining access to the digital sample. The web client is commonly formed by a user's computer on which an Internet browser has been installed.

Embodiments can allow for clear identification of the origin or source of the digital sample and the digital sample itself. The sample code segments may be constructed together to allow for access to the digital sample through a digital path in a manner similar to a URL, while also uniquely identifying the digital sample, its ownership and/or source, and any intermediary or other information identified in the sample code segments. This integration of the code segments may also enable the owner or source or the owner's system or the source's system to track and trace what happens with the digital sample.

A code system employed in embodiments may not be context sensitive and may thus be applied in a wide range of different areas, including, but not limited to electronic samples, physical samples, services, and rights. For example, mail carriers may use a package tracking system that allows for tracking of a package during its delivery. However, their tracking system only works in the context of their particular tracking environment, and cannot be used, for instance, to track items outside of that environment. Embodiments allow for a context-independent, broad or worldwide identification of specific samples based on metadata particular to each individual sample. If desired, the code system described in embodiments could be used in a specific internal scope by including an internal reference to the origin or scope of the sample inaccessible to outside users. In addition, a purely internal specification scope of the code system used by a specific company could be transformed into an external scope accessible to other organizations or individuals by integrating the origin or source of the sample into the specification scope. A scope change to transforming an external specification scope of the code system to an internal scope could also be similarly performed by removing a reference to the origin or scope of the sample. Furthermore, a code system according to an embodiment could be configured to allow for access to a variety of samples of different types. The other organizations or individuals may be provided access on a selected basis according to various embodiments, for example, with different levels of permissions, different groups and subgroups, different security levels, and so forth.

Some embodiments pertain to the use of code generators for a variety of purposes, including, but not limited to the generation of values for a particular code segment, defining sample code templates used for building sample codes for a digital sample, or combining various sample code segments together to form a sample code. For example, a code generator may generate the specified segment values by executing its function using input values from a variety of data sources, including, but not limited to, queries on a database or metadata input from the digital sample. Code generators may be used for quality or integrity control segments, and also for segments with a dynamic value.

Some embodiments also allow for the controlled use of metadata solely on an authorization basis of the user. For example, code samples may include a segment identifying the ownership or source of the digital sample, which may be accompanied by user specification segments identifying the user of the code sample in more detail. For example, the user specification segment could consist of an intermediate such as a distributor or retailer, a customer, consumer, controller, customs, or could be use definitions such as a patient, practitioner, pharmacist, inhabitant, or other. Such a user segment could specify that special metadata concerning the sample could only be accessed by the authorized user of the sample code, requiring that user to authorize or grant specific access to that sample.

Some embodiments also allow for partial sharing of sample code segment values by several codes if the coded samples share a portion of their specification metadata for identification. This could enable the owner or user of the sample codes additional error-checking or verification options in determining if the code samples are valid, or could enable the owner or creator additional processing options based on the shared metadata.

Some embodiments allow for the combination of sample codes for several samples to identify a new sample based on an existing relationship between the combined samples. For example, the combination of the samples can preserve the origin of the samples as well as any specification criteria related to the intermediaries of the combined samples.

Some embodiments provide a content distribution system, which may include one or more servers comprising a plurality of computer processors, a database coupled to at least one of the servers for storing a plurality of digital content items; and a resource for providing access to the digital content items. The resource may include logic that specifies the contents of sample code segments to be used for building a sample code for a digital content item from among the digital content items, wherein a first code segment that identifies an owner of the digital content item is specified by an owner of the digital content item. The resource may also include logic that strings the specified sample code segments to generate the sample code, logic that defines a digital path to a digital location via which access can be gained to the digital content item, and logic that creates a cross-reference between the sample code generated and the digital path defined. The content-distribution system may additionally include a resource to store a playlist comprising a list of multiple items of the digital content items in the database.

Some embodiments provide an intermediary content-distribution system, which may include one or more servers comprising a plurality of computer processors with at least one of the servers having an interface to an external database for storing a plurality of digital content items. The intermediary content-distribution system may also include a resource for providing access to the digital content items, with the resource including logic that defines at least one sample code template comprising multiple sample code segments to be used for building a sample code for a digital content item from among the digital content items. The sample code segments may comprise a first code segment that identifies an owner of the digital content item, and a second code segment that identifies the digital content item. The resource may also include logic that specifies the contents of the sample code segments to be used for building the sample code, wherein the first code segment that identifies an owner of the digital content item is specified by an owner of the digital content item; logic that strings the specified sample code segments to generate the sample code; logic that defines a digital path to a digital location via which access can be gained to the digital content item, and logic that creates a cross-reference between the sample code generated and the digital path defined.

Some embodiments provide a server for content-distribution that may include a plurality of computer processors, a database coupled to at least one of the processors where the database for storing codes corresponds to a plurality of digital content items, and logic that defines at least one sample code template comprising multiple sample code segments to be used for building a sample code for a digital content item from among the digital content items. The sample code segments may include a first sample code segment that identifies an owner of the digital content item, and a second sample code segment that identifies the digital content item. The server may also include logic that specifies the contents of the sample code segments to be used for building the sample code, wherein the first code segment that identifies an owner of the digital content item is specified by an owner of the digital content item; logic that strings the specified sample code segments to generate the sample code; logic that defines a digital path to a digital location via which access can be gained to the digital content item; logic that creates a cross-reference between the sample code generated and the digital path defined; logic that stores the sample code in the database in the server for content-distribution; and logic that delivers the sample code to a remote device to provide the ability for the remote device to access the digital content item at a later time using the code.

Some embodiments provide a content-distribution system that includes one or more servers comprising a plurality of computer processors, a database coupled to at least one of the servers for storing a plurality of digital content items, and a resource for providing access to the digital content items. The resource includes logic that defines at least one sample code template comprising multiple sample code segments to be used for building a sample code for a digital content item from among the digital content items. The sample code segments may include a first sample code segment that identifies an owner of the digital content item, and a second sample code segment that identifies the digital content item. The resource also includes logic that specifies the contents of the sample code segments to be used for building the sample code, wherein the first code segment that identifies an owner of the digital content item is specified by an owner of the digital content item, logic that strings the specified sample code segments to generate the sample code, logic that defines a digital path to a digital location via which access can be gained to the digital content item, and logic that creates a cross-reference between the sample code generated and the digital path defined. The content-distribution system may also include a resource for processing payment from users for digital content items; and a resource for providing the digital content items to remote user devices.

Some embodiments provide a system for distributing content using multiple systems. The system may include a first system which includes a first set of one or more servers comprising a plurality of computer processors; a database coupled to at least one of the servers for storing a plurality of digital content items; and a resource for providing access to the digital content items. The resource may include logic that defines at least one sample code template comprising multiple sample code segments to be used for building a sample code for a digital content item from among the digital content items. The sample code segments may include a first code segment that identifies an owner of the digital content item, and a second code segment that identifies the digital content item. The first system may also include logic that specifies the contents of the sample code segments to be used for building the sample code, wherein the first code segment that identifies an owner of the digital content item is specified by an owner of the digital content item; logic that strings the specified sample code segments to generate the sample code; logic that defines a digital path to a digital location via which access can be gained to the digital content item, and logic that creates a cross-reference between the sample code generated and the digital path defined. The system may also include a second system which includes a second set of one or more servers comprising a plurality of computer processors; a second database for user account information; a resource for managing user accounts; and a resource for storing the sample code for the digital content item, in which the sample code is generated by the first system.

The second system described above may comprise a social network system, the account information may include information for users of the social network; and the second system may include a resource for sharing digital content items based on the sample code for the digital content that is generated by the first system. The content-distribution system described above may include specific implementations of how the code and processing of the code may be tailored to the social network environment.

Some embodiments provide a system for distributing content using multiple systems, the system including a first set of one or more servers comprising a plurality of computer processors; a database coupled to at least one of the servers for storing a plurality of digital content items; and a resource for providing access to the digital content items. The resource may include logic that defines at least one sample code template comprising multiple sample code segments to be used for building a sample code for a digital content item from among the digital content items, The sample code segments may include a first code segment that identifies an owner of the digital content item, and a second code segment that identifies the digital content item. The resource may also include logic that specifies the contents of the sample code segments to be used for building the sample code, wherein the first code segment that identifies an owner of the digital content item is specified by an owner of the digital content item; logic that strings the specified sample code segments to generate the sample code; logic that defines a digital path to a digital location via which access can be gained to the digital content item, and logic that creates a cross-reference between the sample code generated and the digital path defined. The system may additionally include an interface for communicating with a second system, wherein the second system includes a second set of one or more servers comprising a plurality of computer processors; a second database for user account information; a resource for managing user accounts; and a resource for storing the sample code for the digital content, in which the sample code is generated by the first system.

Some embodiments include a system adapted to operate with a second system for distributing content, the system including a first set of one or more servers comprising a plurality of computer processors; a first database for user account information; a resource for managing user accounts; a resource for storing a sample code for a digital content item from among digital content items stored on a second system, which sample code is generated by the first system; and an interface for communicating with the second system. The second system may include a second set of one or more servers comprising a plurality of computer processors; a database coupled to at least one of the servers in the second set of one or more servers for storing a plurality of digital content items; and a resource for providing access to the digital content items. The resource may include logic that defines at least one sample code template comprising multiple sample code segments to be used for building the sample code for the digital content item from among the digital content items. The sample code segments may include a first code segment that identifies an owner of the digital content item, and a second code segment that identifies the digital content item. The resource may also include logic that specifies the contents of the sample code segments to be used for building the sample code, wherein the first code segment that identifies an owner of the digital content item is specified by an owner of the digital content item, logic that strings the specified sample code segments to generate the sample code, logic that defines a digital path to a digital location via which access can be gained to the digital content item, and logic that creates a cross-reference between the sample code generated and the digital path defined.

Some embodiments also provide a user device adapted to operate with a system for distributing content. The user device may include a processor; communication circuitry enabling the user device to communicate with remote systems; storage that stores at least part of digital content items; a mechanism that delivers at least part of the digital content items to a user of the user device, wherein the mechanism is selected from a group comprising a display and an audio device; storage that stores a sample code for the digital content item from among digital content items stored on a remote digital content system; and logic that interfaces with the remote digital content system to gain access to the digital content item based on the sample code for the digital content item. The remote digital content system may include logic that defines at least one sample code template comprising multiple sample code segments to be used for building the sample code for the digital content item from among the digital content items. The sample code segments may include a first code segment that identifies an owner of the digital content item, and a second code segment that identifies the digital content item. The remote digital content system may also include logic that specifies the contents of the sample code segments to be used for building the sample code, wherein the first code segment that identifies an owner of the digital content item is specified by an owner of the digital content item; logic that strings the specified sample code segments to generate the sample code; logic that defines a digital path to a digital location via which access can be gained to the digital content item, and logic that creates a cross-reference between the sample code generated and the digital path defined.

The content-distribution system described above may also include a user device that includes a mobile telephone, in particular a smart phone, and wherein the communication circuitry comprises mobile radio circuitry. The user device may also include a portable computer wherein the communication circuitry comprises computer network communication circuitry. The user device may additionally include a mechanism that can read the sample code for the digital content item from an external item. The mechanism that can read the sample code for the digital content item from an external item may include an optical scanner or a radio frequency identification (RFID) reader.

BRIEF DESCRIPTION OF THE DRAWINGS

The following are exemplary, non-limiting embodiments, wherein:

FIG. 1-A shows a block diagram of a content distribution system and a user device according to an embodiment,

FIG. 1 shows a schematic view of a method for compiling a sample code according to an embodiment,

FIG. 2 shows a schematic view of a method for gaining access to a music file associated with the sample code as shown in FIG. 1 according to an embodiment,

FIG. 3 shows a schematic view of an alternative method for compiling a sample code according to an embodiment,

FIG. 4 shows a flowchart defining a sample code template for building a sample code according to an embodiment,

FIG. 5 shows a flowchart of specifying the sample code template defined according to the flowchart as shown in FIG. 4 according to an embodiment,

FIG. 6 shows a flowchart of linking a digital path to a generated sample code according to the flowchart as shown in FIG. 5 according to an embodiment,

FIG. 7 shows a flowchart of generating an iconographic representation of a sample code generated according to the flowchart as shown in FIG. 5 according to an embodiment,

FIG. 8 shows a flowchart of saving a document provided with a sample code generated according to the flowchart as shown in FIG. 5 according to an embodiment,

FIG. 9 shows a flowchart of opening a document provided with a sample code generated according to the flowchart as shown in FIG. 5 according to an embodiment,

FIG. 10 shows a flowchart of handling a user's request for gaining access to a digital sample provided with a sample code generated according to the flowchart as shown in FIG. 5 according to an embodiment,

FIGS. 11-15 show schematic views relating to an example how to create a sample code according to an embodiment for a digital document,

FIGS. 16-17 show schematic views relating to an example of how to gain access to a digital sample by using a sample code according to an embodiment, and

FIGS. 18-25 show schematic views relating to an example of how to protect audio samples by using a sample code according to an embodiment.

DETAILED DESCRIPTION

FIG. 1-A shows a content distribution system 1 using digital samples 2 and unique sample codes 3 for the digital samples 2 according to an embodiment. The system 1 stores digital samples and makes the digital samples 2 available for access from and distribution to user devices 4. The system 1 compiles digital sample codes 3 that identify and regulate access to the digital samples 2. The digital samples 2 may be various items of digital content, such as documents, music files, video and other content, according to various embodiments. The exemplary content distribution system 1 includes at least a code compilation engine 5, a code database 6, a digital sample access engine 7 and a digital sample database 8. The content distribution system 1 may further include various computer and electronic resources such as processors, memory devices, various chipsets, interfaces, communication code and circuitry and network code and circuitry. The code compilation engine 5 compiles sample codes, by which digital samples can be accessed, and stores the sample codes in the code database. Sample codes are stored in the code database 6. The compilation may be done with the use of templates of code as described in more detail elsewhere herein. The digital sample access engine 7 provides access to the digital samples stored in the digital sample database 8. The digital sample access engine 7 provides the access based on the code corresponding to the respective digital samples 2. The user device 4 may be a mobile user terminal and may comprise a mobile telephone, mobile computer, personal computer or other user device. The user device 4 has code and/or circuitry to access digital samples 2 using the codes 3 corresponding to the respective digital samples 2. Additionally, the user device 4 has a mechanism that delivers at least part of digital content items to a user of the user device 4. This mechanism may comprise, for example, a display and an audio device. The code and/or circuitry to access the digital samples 2 using the codes 3 is shown as access logic 9. This logic 9 provides access to the digital sample 2 using the respective code in cooperation with the digital sample access engine 7 in the content distribution system 1. The user device 4 provides the code to the content distribution system 1, and in response, the content distribution system 1 delivers the corresponding digital sample 2. The user device 4 can then deliver at least part of the digital content items to a user of the user device 4, for example, by displaying a document on a screen, by playing an audio file on a speaker, or by playing a video using a screen and speaker.

Different user devices 4 associated with a user may also be used to access a unique sample code 2. For example, a sample code 2 may be sent to a user's email address, which is first accessed using a user device 4 such as a mobile computer. The same sample code 3 may be subsequently accessed by using a different user device 4 such as a mobile telephone. Thus, while the sample code 3 may be sent to an initial user device, the code may also be sent to a specified user who may enter the sample code into a variety of user devices 4. In addition, depending on the permissions granted to the user, the user may be able to share the sample code 3 with other users, for example by having the system 1 transmit the sample code to other user devices 4, enabling the other users to access the sample code 3 on their own user devices 4. The digital sample 2 may be stored in a sample storage 10 of the user device 4.

FIG. 1 shows a schematic view of a method for compiling a sample code 11 according to an embodiment. This method may be executed by a code (compilation) engine. In this exemplary embodiment, the sample code 11 is associated with a digital audio sample 12 (see FIG. 2) the content of which was composed/created by the Beatles. An audio sample may comprise a world-wide unique distinctive entity of a (full) audio track. By using the sample code 11, a user may be able to gain access to the sample 12. Hence, the sample code 11 may function as a “key” to obtain access to the audio sample 12. According to an embodiment, the sample code 11 is embedded into the audio sample 12 in order to facilitate tracking and tracing of the audio sample 12 once downloaded. The sample code 11 may also form the file name of the audio sample 12. Compiling of the sample code 11 is described next. In a first step A) a code template 13 is defined, wherein different code segments are defined for building the sample code. In a specific embodiment, the code segments “Owner ID” and “Sample ID” are necessary, but other code segments are optional. The necessary code segments are used to make the origin of the audio sample 12 (defined in the “Owner ID” code segment) and the relevant metadata, in this example the artist, related to the audio sample 12, directly recognizable to a reader or user of the sample code 11. The origin of the audio sample 12 may incorporate an indication of the owner of the audio sample 12 which may be either a present owner (or previous owner) of the audio sample 12. In this example, additional code segments that may be used include an “Intermediary” code segment relating to an intermediate party via which the specific audio sample 12 is offered to customers; a “User ID” code segment relating to specific or personal user 14 related information, and a “Checking Part” code segment relating to a check digit to control the accuracy or reliability of the sample 11. The order of the selected code segments may then be determined, after which the type of separation mark is chosen to separate adjacent code segments. The selected and ordered code segments separated by a separation mark, may collectively form the code template 13. In a next step B) the code segments of the code template are specified. As shown in FIG. 1 the “Owner ID” code segment is specified with www.emi.com, indicating that the audio sample 12 is published by and belongs to the original owner EMI. Apple's iTunes is used as an “Intermediary” to offer the audio sample to the public. The audio sample 12 within the EMI environment is uniquely coded with “Beatles33433” to indicate that the audio sample 12 represents a song composed by the Beatles. The “user ID” specification is dependent on the identity of the user requesting to gain access to the particular audio sample 12. The “Checking Part” specification is the result of mathematically processing of other characters of the sample code 11 and is commonly automatically filled in. Applying these specified code segments into the code segment template 13 (step C) will result in the sample code 1: www.emi.com/itunes/beatles33433/12345/4 alternatively www.emi.com/itunes.com/beatles33433/12345/4. This sample code 11 is unique world-wide and can be used as a unique, universal unique personal or web key to obtain access to the desired sample 12 of the audio track. In this example, the audio sample 12 is stored at a web location having a different web address 15 (itunes.apple.com/234322342922340.htm) than the web address 11 (www.emi.com/itunes/beatles33433/12345/4) represented by the code sample 12 (step D). A cross-reference between both web addresses may be stored in a cross-reference database 16 (step E). The sample code 11 is sent by email to the user 14.

FIG. 2 shows a schematic view of a method for gaining access to the audio sample 12 by using the sample code 11 as shown in FIG. 1. The user 14 can manually or automatically (by clicking) enter the sample code 1 into a web browser 17. This will redirect the user 14 to the EMI environment where a script can automatically retrieve the cross-referenced storage location relating to the sample code 11, and redirect the user 14 to the storage location where the audio sample 12 is stored. Textual or graphical information (not shown) may be displayed to the user 14 at the web location where the digital audio sample 12 can be found, which may or may not be related to the content of the audio sample 12. Depending on the user's permissions, the user 14 may either be able to download the audio sample 12 or be able to stream the audio sample 12 through the Internet. Streaming is the act of playing the audio sample 12 through the Internet, while downloading is transferring the complete audio sample 12 to the user's computer after which the user 4 can play the audio sample 12 from the computer.

FIG. 3 shows a schematic view of an alternative method for compiling a sample code 18 according to an embodiment. The method visualised in FIG. 3 is substantially similar to the method shown in FIG. 1, wherein a code template 19 is defined based upon stringing of separated code segments in a predefined order. In this example the code segment “User ID” is omitted, leading to the code template 19: www.host.nl/intermediary/sample/checkdigit, or alternatively www.host.nl/intermediary.com/sample/checkdigit. The code segments incorporated in the code template 19 are subsequently specified and incorporated in the code template 19 leading to the sample code 18: www.emi.com/itunes/beatles33433/4, or alternatively to www.emi.com/itunes.com/beatles33433/4 (not shown). This sample code 18 can be embedded into an audio sample associated with the sample code 18. The storage location of the audio sample is directly represented by the sample code 18 itself. Hence, the sample code 18 does not merely uniquely code the audio sample but also represents the location of the audio sample. A cross-reference database may be omitted in this example. However, it is imaginable to apply a cross-reference database for cross-referencing the sample code 18 and the finding location, even if both are identical, since this may facilitate future changes to the path leading to the storage location without ending up with a dead link. A change of the storage location can be processed and updated in the database, which may result in the sample code 18 permanently leading to the audio sample, if permitted by the owner/selling party. The sample code 18 may be provided to a user 20 by email.

FIG. 4 shows a flowchart 21 defining a sample code template for building a sample code according to an embodiment. To define a code template, it is presumed that the metadata of the samples, intended to be coded, are known which enable unique identification in the scope of the owner. These identifying metadata can be used to define the template: the number of code segment templates and the meaning of the code segment templates. Before starting a definition, the code type may be selected. The code type enables that a code of this code type can be distributed following a particular transfer protocol in an electronic network. For example, there is a function available to transform codes of a particular code type to another one if necessary during the life time of a code. Moreover, the code type determines which segment types are permitted to build a code of this type. The code type determines also which punctuation marks are allowed e.g. as segmentation characters and where to apply in the code (before, after, or in between which code segments). The segment types and the options for punctuation marks may be chosen from the filtered sets applicable for the selected code type. The application does the filtering according to the selected code type; an application administrator may select from the filtered options. This selection may be done for the template definition; the selections can be applied to all codes of the particular template. Besides those selections, the template is given a name. The definition of the code segment templates relates to the code structure and the meaning of each code segment. The structure is defined by the code segment type, the separation characters between the segments, and the sequence of the segments. A code type “http intermediate” requires at least three segments for the host identifier to represent the owner; an intermediate segment type, path segment types, and a quality control segment type. The segments of segment type host identifier are host name, domain name server second level, and domain name server top level. The sequence of the segments is determined by the chosen code variant: e.g. the segment for the domain name server second level is the segment following the host name in the default variant; however it could be switched to the third place in the order of segments after the domain name server top level. In the default variant, domain name server top level gets sequence 3. The default variant generated e.g. appleitunes.emi.com, the switch variant generates emi.com.appleitunes. Besides the segment types for the host name segments, there are segment types for so-called path segments (the segments according to the identifying metadata of a sample in the scope of its owner), e.g. year of edition, composer, performing artist, etc. The names of the segment express the meaning of those path segments. More segment types are quality control segment, security control segment, interactive user segment, etc.

The lower part of the flowchart deals with the decision if a generator can be defined that is applicable for generating all codes (the values for the segments) that follow the template or if generators can be defined that enable generation of values for particular segments of all codes following the template.

If at least one such generator can be defined, it may be decided if there is an existing generator that can be just related to the template as the applicable generator. In case there is no existing one, the generator may need to be designed, programmed, tested, authorized for applicability, and integrated into the application.

FIG. 5 shows a flowchart 22 of specifying the sample code template defined according to the flowchart 21 as shown in FIG. 4 according to an embodiment. Defining a code starts with selection of the code template. A code may be defined by providing the possible values for each code segment. If a generator was defined related to the template already, that generator can be activated. There is a possibility that several generators are defined on template level for the whole code as well as for particular segments. In such a case, the desired generator may be selected (by the user or predefined) and activated. The flowchart shows also the option to select another, specific generator just for one code or develop a new one and integrate it in the application for usage.

Each generator can use input parameters read from a file or received via queries on several resources (not presumed to be part of the application). Those parameters may be processed before becoming segment values, or manually inserted if convenient. This may apply to any generators mentioned in relation to other figures as well. As soon as each segment of a code has a valid value, the code string can be generated; this may be performed by placing the values of the code segments in the predefined order and by placing the defined separation characters (in this instance punctuation marks) as predefined in the template; the string generation follows also the template definition.

FIG. 6 shows a flowchart 23 of linking a digital path to a generated sample code according to the flowchart 22 as shown in FIG. 5 according to an embodiment. A code or a set of codes is selected; the selection starts with the template selection; then the decision follows if all codes of that template or just a particular one shall be related to (cross-referenced) a later selected source file. This can be done because particular specifying data can be related to codes, as well, not only digital samples. Those specifying data, e.g. a CV of the performing artist, can be related to all codes containing a segment with this particular artist. If the digital sample itself is related, only one code has to be selected. The next part of the flowchart contains the option to define a digital sample dynamically. That means, a digital sample does not need to already exist as content of a file; it could be generated by a number of methods, including processing a calculation, running a query on several (distributed) data sources, or by processing a computer instruction for other generators as described in more detail herein. An example is an actual timetable of a room. As described under FIG. 5, the input parameters for the digital sample generator could be taken from a file, from databases, in between processed or not, manually inserted, etc. In this instance, the digital sample is “contained” in a file or is a file, the file name with a path to the location of the file is defined as the so-called “source identifier”, otherwise the name and location of the generator is defined, a query definition or a stored procedure name could be given or provided as a source identifier. After selection of the source identifier, the code segment is selected that is related to the source identifier. If the same source identifier is related to several codes (see beginning of the explanation to this FIG. 6), the segment is selected on template level, otherwise the particular code segment is selected. Following this process, the relationship is saved in the database.

FIG. 7 shows a flowchart 24 of generating an iconographic representation of a sample code generated according to the flowchart 22 as shown in FIG. 5 according to an embodiment. After selecting or searching a code template and decision if the iconographic representation shall be used for all codes of the template or just for a particular code and selection of this particular code, the type of iconographic representation may be selected; such as a representation as a linear barcode type following a particular algorithm, 2D barcode type following a particular algorithm, RFID type following a particular algorithm, or others.

FIG. 8 shows a flowchart 25 of saving a document provided with a sample code generated according to the flowchart 22 as shown in FIG. 5 according to an embodiment. The processing is an alternative application of the flowchart 23 of FIG. 6, but described in more detail in relation to a document. The transaction is called “save as SC format”, wherein ‘SC’ stands for sample code. A user writes or updates a document on his local computer. He decides to save it coded according to some embodiments. This may mean, for example, saving it at a central document server and generating a code for the document as digital sample. One condition that may be in place is that the user has access to a macro or another technical realization of the coding machine described herein or of a part of the coding machine, respectively. This coding may be done using the following steps: name the document if not done already, select a document format such as .pdf, .doc, .html, .xls, .odt, or others, select the template for coding if not done before for the same document (the document could be just opened and updated and not be a new document), or in case of a new document, the document's file name including a path to its storage location may be defined (is equal to definition of source identifier of FIG. 6). If the document is already coded, the document or the version of the document is saved taking into account a concurrency protocol in a multi-user environment; the user may receive a notification that the document is saved properly. Otherwise, in case of a new document, the document in the selected format such as .pdf, .doc, .html, .xls, .odt, etc. is created, the document is saved taking into account a concurrency protocol in a multi-user environment, the code is saved, the path to the document's file including the file name (=resource identifier) is saved, the relationship between code and sample (code-resource identifier) is saved, the code is sent in an email or attached to an email to the user (includes also the notification that the document is saved properly); and it is decided whether the local version of the document should be deleted or not.

FIG. 9 shows a flowchart 26 of opening a document provided with a sample code generated according to the flowchart 22 as shown in FIG. 5 according to an embodiment. The transaction is called “open as SC format.” First, the user decides to open a coded document. The user may obtain access to the central location by activating the code of the document. In the flowchart in this instance, the document is the sample, and not each version of the document is also a sample. For example, the user may obtain access to a list of versions of the document and select one he wants to open. After opening the document, he can read or write it according to his authorization. If the user updates the document, he may decide if he wants the updated version of the document also saved as a version of the coded document. If so, he may perform the transaction “save as SC format” as shown in the flowchart 25 according to FIG. 8.

FIG. 10 shows a flowchart 27 of handling a user's request for gaining access to a digital sample provided with a sample code generated according to the flowchart 22 as shown in FIG. 5, according to an embodiment. In particular, FIG. 10 illustrates the process after a user activated a code as a link to access the coded document. The application receives the request, and decides if the request contains a legal code according to some embodiments and if the code is known in the application's database. If so, the application can decide if the code usage is related to a login procedure. If so, the login procedure must be carried out. If successful, the user's access rights are examined and coupled to any further processing performed by the user, which may call the transaction “open a SC format”.

FIGS. 11-15 show schematic views relating to an example of creating a sample code according to an embodiment for a digital document. The submission process for a construction approval processed by a municipality such as Amsterdam is described first in general, and then a more detailed explanation of how to create an identifier for multiple versions of a digital document (such as a construction approval) is provided.

A company (company A) needs an approval for some construction work. To gain approval, company A submits a form with some data about the planned work together with a list of documents, e.g. construction drawings and calculations. These documents are to remain the intellectual property of the particular creator, e.g. the architect (arch) or the construction company (BuildingContractor). The form including the list of documents to be submitted are owned by the submitting company, company A.

The first step is to define the metadata that enables unique identification of the samples in the scope of its owners. For example, suppose that the architect “arch” made construction drawings 1 and 2 and that the drawings concern a production hall for company buildings, and that the drawings are created 15 Apr. 2009. The identifying metadata include: the owner “arch”, company building, production hall, drawing number, and creation date of the drawing. The codes for these drawings as samples include: www.arch.nl/company-building/production-hall/drawing1/15042009 and www.arch.nl/company-building/production-hall/drawing2/15042009.

The same principles applied to the calculation and drawing documents of the construction company (building contractor) generate the following codes: www. BuildingContractor.nl/company-building/production-hall/roof/calculation1/20012008, www. BuildingContractor.nl/company-building/production-hall/wall-static/calculation2/23012008, and www. BuildingContractor.nl/company-building/production-hall/wall-static/drawing2/070720089.

The submitting company A is the owner of the submission document. The identifying metadata for this document as a sample include: company A as owner, concern, document name, and submission date; the code is www.companyA.nl/construction-approval-submission/form12345B/16112009. This form 12345B contains the list with the codes of the obliged documents, the drawings and the calculations.

The municipality of Amsterdam receives the form as code on its specialised public server for submissions as www.companyA.nl/construction-approval-submission/form12345B/16112009. Activating this code as a link may open the form; the list with required documents is contained as codes; activating those codes can show the content of the documents.

The municipality of Amsterdam has a department D that deals with these submissions. It has civil servants who are responsible for the approval process as well as for compiling the approval documents. Before the final approval document is created, it has some predecessors because other experts (for example building inspectors) may give their approval as well. The expert documents are coded following the identifying metadata template as shown in figure 11 for the construction approval itself and may exist in several versions. The upper part of FIG. 11 illustrates how the metadata concerning the administrative structure of the municipality are applied to specify and identify the construction approval document. Please note that the administrative structure of the municipality of Amsterdam is not according to the example provided and the real approval process differs from this example.

The lower part of FIG. 11 shows the identifier string, now applied for a particular approval; the responsible civil servant is Bas; Document version 2 is identified here.

The identifier itself doesn't need separation characters between its parts; however, separation characters between the parts could be used for simple human recognition. The parts of the identifier are the values of the chosen specification criteria or metadata respectively. The parts each have a role within the identifier: for example, in this instance they define the owner, specified metadata (such as the responsible department, the specialism, the responsible civil servant, and the document's name).

Additional parts of the identifier may also specify metadata additional with a special role as an owner identification part or as a sample identification. According to an embodiment, the owner is the institution, organization or organization structure respectively or the person or group of persons, etc. which are the intellectual or material property owner or creator, producer, buyer, etc. respectively. The identifier enables the creation of the sample code of each document version. The code may employ at least one separation character between its segments to ensure readability for any human reader. In this example, a slash is applied as a separation character.

The sample code for sample DocVersion2 is: “www.Amsterdam.nl/Wonen_Milieu/SpecConst/Bas/ConstrApproval2345ABC123/DocVers ion2”. The (digital) document is marked by the code (e.g., as code string and as a graphical image such as a 2D barcode). In the case where the documents will be saved on a central document server, optionally incorporated in a computing cloud, according to an embodiment, the code may be extended to additionally function also as a resource locator.

Each civil servant and expert involved in the decision process can obtain the authorized code as a link, e.g., within an email, usable within the intranet of the municipality to get access to the document version 2, in this case (See FIG. 12).

The code could be extended with a segment that defines the intended user of the code, e.g., another civil servant who is an expert concerning some parts of the approval's subject. Suppose that this expert is Jeroen. The extended code would look like: “http://www.Amsterdam.nl/Wonen_Milieu/SpecConst/Bas/Jeroen/ConstrApproval2345ABC 123/DocVersion2”.

Collaboration between the system and the document server would show that it should expect an authentication procedure by Jeroen (and nobody else) if this code is received through the intranet of the municipality. This extended code can be used successfully only by Jeroen. Bas would need the following code extension, even if he is the responsible civil servant for creating the sample:

“http://www./Amsterdam.nl/WonenMilieu/SpecConst/Bas/ConstrApproval2345ABC123/D ocVersion2/Bas”. Both code extensions still represent the allowance for legal access to the same digital document.

The order of the user segment is not obligated at the location within the example string.

The code could be extended also with segments containing more metadata on the construction itself that is in an approving process. If the project name and the location of the construction work impacts the identification of the approved construction, then these metadata items should be part of the code. The code string would then look like:

“http://wwwAmsterdamml/Wonen_Milieu/SpecConst/Bas/Project45NondelPark/ConstrApp roval2345ABC123/DocVersion2”

As soon as the subscription is decided, one of the document versions becomes the final document. This means, the approval document itself may be the sample and its versions are just specifying data about the history of the decision behind the approval.

The identifier of the approval document is: “Municipality Amsterdam Wonen_Milieu SpecConstr Bas ConstrApproval2345ABC123” where Municipality Amsterdam represents the owner and the rest is the identifier in the scope of the owner. Generating a code from the document's identifier will have the result in:

“http://www/Amsterdamml/Wonen_Milieu/SpecConst/Bas/ConstrApproval2345ABC123”.

After the decision, the code may be made available to the company (company A) who applied for the construction approval as well as the architect and the building contractor who is contracted by company A. Company A, the architect and the building contractor may communicate via a communications or computer network (such as the Internet) to access the final document “ConstructionApproval12345ABC123” being considered as the sample construction approval.

To enable communication via a network, at least a part of the code segments may be replaced by a representation variant for the owner that enables this communication with the outside world, in the case of the Internet, via the “http” protocol of the Internet.

One representation variant of (a part of) the source segments that may be used is the IP address or its human readable form (host and DNS parts definition), where the owner segment “Municipality Amsterdam” is replaced by the domain name or the IP address of the Amsterdam municipality. The resulting code representation includes the leading Internet protocol name as shown on top of FIG. 14. The segment “Municipality Amsterdam” is replaced by another representation of this owner part and the representation can be recognized by the http Internet protocol.

As demonstrated for internal use during the decision process, this code could be extended by an interactive user segment which would result in a code that may be used by company A and another one that may be used by the architect and the building contractor. Each of the extended codes identify the same sample document, however now the sample is the allowance to access the document by Company A, by the architect, and by the building contractor. The responsible person of the municipality sends the particular code as a link in an email to Company A, to the architect, and to the building contractor. The receiver can click on the link and can be directly routed to the document; however at the port to the municipality network, the code engine may evaluate if the received code is an existing one and if so, each user must authenticate himself, given the restricted nature of the document. Following authentication, the users can read (and eventually write) to the document inside the central data server X of the municipality M. Each of the users gets his own code, e.g. “http://www.Amsterdam.nl/Wonen_Milieu/SpecConst/Bas/ConstrApproval2345ABC123/Co mpanyA”.

FIG. 14 shows an extension of the case, namely that the users are enabled to print the document at their location. The digital document itself is still only available on the municipality's central server. The printed documents are considered to be additional appearances of the digital document, as they have the same code as the digital document. The appearance of the document or sample may be marked with the code, such as the code sample string and/or a graphical icon.

FIG. 15 shows an additional scenario, wherein the document may be downloaded to the computer of the building contractor. The digital copy of the original can be marked as a copy of the original; this is done because the digital copy could be updated for whatever reason. If the digital document is a read only document however, updating of the document would not be allowed. However, to keep processing of coded samples uniform, the copy can be marked as such, and additionally, the activator of the copy can be added. In most instances, the activator of the copy is equivalent to the source of the copy. Thus, the sample copy is coded by the identification of the copy process and by the source of this process as well as by the original's code. This code enables the building contractor to send his copy of the document to other parties (also by a link through email) with the contractor segment acting as an intermediate. The link may be routed to the contractor's digital copy. However, anybody accessing the digital copy would know that it is the copy of which original sample (via the code “printed” on the document). FIG. 15 further shows that the constructor may use a part of the copied document in another way, e.g., some of the construction drawings may be extended/updated to create a new document. In this case, the connection with the original may get lost in the identifier/code of the new document. If desirable, the relationship between the original and the newly derived original can be saved in the code engine by relating both codes with each other. However, this relationship is not visible on the documents and may be dependent on the cooperation of the building constructor. If the relationship is saved, it can be found by representing the relationship as part of the specifying data related to both of the codes. This enables tracing of the relationship from both sources. The source of the original sample (municipality M) should know what the consequences are as soon as it allows the users to download a copy of the sample to his local computer. To allow for traceability of such downloads Municipality M should ensure that its partners agree to implement the code engine used in some embodiments. Otherwise, the code engine should not be available at the user's local sites.

FIGS. 16 and 17 show schematic views relating to an example describing how to gain access to a digital sample by using a sample code according to an embodiment. More specifically, FIG. 16 shows in its lower part a code that a user gets after buying user rights to product A. One of the code segments contains the timestamp of sending the code from the user's browser. This is an example of a dynamic code segment. The value of the segment may be different each time the user applies the code. The user does not typically see the extension with the timestamp. The dynamic value serves a security purpose. The code could contain one or more other security segments to ensure that nothing in the code is manipulated. The code can be used on the user's mobile communication device. It is routed directly to the intermediate's website where the user bought the product. After authentication, the user may access his personal environment where he has access to his playlist and/or can use additional functions like searching for more information, updating his playlist, buying another product, and others. If the user activates his playlist, the original files are streamed to its iPhone, and log entries may be created.

FIG. 17 illustrates how search engines could react to the situation described before. If a combination of metadata was inserted as search terms like Janine Jansen & Violin Concerto & Britten or Janine Jansen & Britten, etc., a search engine would find (among some other recording of Britten's violin concerto by Janine Jansen) the website of Decca and would route to the coded audio file and its additional specifying metadata at legal intermediates. From there it is known which intermediate websites offer the audio file. The user would get the links of the websites and clicking a link, he would be linked directly to the entry in the list with audio file offers.

FIGS. 18-22 show schematic views relating to an example of how to protect audio samples by using a sample code according to an embodiment. FIG. 18 demonstrates that the same principles may be applied to define the codes for audio files as demonstrated for documents in FIGS. 11-15. The same principle may also be applicable for video files, games, electronic books and other types of digital samples.

First, specification criteria is chosen that is suitable to world-wide uniquely identify each audio sample in the scope of all other samples of the same source (thus providing a legally unique entity of the audio samples). The specification criteria may identify metadata of the sample. The sample, or the audio file in this instance, is related to the code as well as additional metadata of the sample such as the assistant orchestra, the conductor, and the playtime of an audio sample. The identity of the pre-, studio and/or finished edition name may be created from the names of the different role performers like the label, the composer, the performing artist (could be a group of artists, etc.) and from other specifying data such as the concert and the release date (the edition was finished), with the label considered to be the legal entity of an edition. Other roles of participating artists could be used as identifying metadata like the conductor in the case of particular types of music. In implementation, the set of selected identifying metadata may differ depending on the specific kind of audio content in question, e.g., the type of music. However, this example merely demonstrates principles used in some embodiments. The principle for selecting the set of identifying metadata is to select a minimal set that enables world-wide unique identification within the scope of the legal entity. The rest of specifying metadata (the ones not used as elements of the set of identifying metadata) is considered to be related to the sample's identifier. The sample itself, the audio file, is also related to its identifier and vice versa in a bi-directional relationship. The relationships are realized by the said cross references in the database of the respective system or method.

Nevertheless, the principles described herein with regard to music or audio files, may also be applicable to other audio files, and also to films, videos in general, electronic books, games, and other kinds of media. The user rights and related prices may be different in terms of what is being sold (maybe the number of films or books instead of airtime, or an amount of money in the sense of prepaid usage e.g., reading books for 100 Euros (each book has a “reading price”)). The details of the code templates, of the codes, which data are logged, what the user may select (maybe there is no need for a playlist), etc. may differ from implementation to implementation.

This example uses the aforementioned metadata as identifying metadata, as shown in FIG. 18. The left part of FIG. 18 shows an example for a possible set of metadata intended to enable identification of an audio sample in the scope of its legal entity. The selected set of identifying metadata can be used as a blueprint for the identification values for a sample as demonstrated in the middle part of FIG. 18. These data values are identifying metadata of the sample; here the recording of Britten's violin concerto by Janine Jansen, finished at 2nd of June 2009. The metadata as a blueprint (shown left in FIG. 18) is metadata in relation to the metadata of the sample (shown in the middle part). The blueprint metadata is meta-metadata of the sample. See the text rows of FIG. 18. Other specifying metadata related to the sample's identifier may not be needed to identify the sample, but can be used to specify a sample; see the right part of FIG. 18.

FIG. 19 illustrates the principle of how the system of an embodiment handles the identifier to create the code. The blueprint of the identifying metadata (the meta-metadata of samples) can be applied to define a code template for all the audio sample codes. This part is not specifically shown in the figures. For example, the template could use the metadata specifications as shown in the left part of FIG. 18. “Music label” in this instance stands for the legal owner/source or legal entity, respectively. In this instance, the legal entity can be identified by its identifier applying a transfer protocol. This protocol determines the syntax of the code string such as any applicable separation character(s) and which representation of the legal entity identifier should be applied; in this instance the human readable representation of the IP-address is used because the codes are intended to be applied in an Internet environment. In another environment, another representation of the legal entity identifier could be more useful, e.g., an ftp-address or the email-address of the legal entity (the person's or institution's email-address).

The template for our example looks like:

www.decca.com/Year/Composer/Title/Edition

The code of the sample will look like:

www.decca.com/2009/BrittenNiolinConcerto/JansenJanine02062009

One of the identifying segments, the composer segment, is reduced to the surname of the composer, and blanks are removed inside the text of code segments. Such reductions are not mandatory, but can be applied to make the code more compact (to save bits to be transported over the Internet). Other, more effective reduction rules could also be applied. The coding of the editions as samples may be initiated by Decca in this instance, or in general, by the legal entity according to the approach used in some embodiments. The legal entity of the audio samples can make the audio files available to the intermediate party, in this example to iTunes. This leads to an extension of the sample code (as well as before to an extension of the template—in fact another template may be applied that copies the first template and extends the copy with the intermediate segment) as shown in FIG. 19. The legal entity could also contract with several intermediates.

The extended template here looks like:

“ww.decca.com/Intermediate/Year/Composer/Title/Edition” and the codes of the example sample for e.g., two intermediates (iTunes and Bol) look like www.decca.com/iTunes.com/2009/Britten/ViolinConcerto/JansenJanine02062009 and “www.decca.com/Bol.com/2009/Britten/ViolinConcerto/JansenJanine02062009”.

The sample codes (the codes of the edition) are added into the audio file so that the coding is inseparably related with the sample itself. Additionally, their relationship is saved in the application database. This is illustrated by the little black square shown in the audio file icon in the following figures.

Decca and other labels are licensed to offer audio samples which are in fact audio files for streaming in this example. For this reason, iTunes presents a list of available audio samples on the iTunes website; see FIG. 20. Each entry in this list is related to the code of the audio sample and the code represents the audio sample. As the legal owner/source (the music label) is part of the code, this may allow for controlling or tracing of the samples by the legal entity if its samples are offered for sale or otherwise transferred.

FIG. 21 illustrates the next steps; now taken by the intermediate (Apple's) iTunes. An anonymous user comes along (or browses to) the iTunes website or he is advised to go there. He sees the offer list and he may listen to a part of each selected sample to get an impression. If he is interested in any of the selected samples, he may select some audio samples and add them into a playlist. He can't listen to the playlist until he has paid for it. Once payment has been made, the user becomes a client. The intermediate (in this case iTunes) offers a paid service as a sample; if purchased, the client can listen to his playlist(s). In our example, the paid service as a sample delivers a set amount of airtime, e.g., 10 hours, but other models could also be used.

A playlist of a user is considered as a digital sample in the context of this application. The playlist sample as well as the service sample is also coded following the principles used in some embodiments. Individual playlists as well as individual service samples may also have a legal entity. In this example, this is not Decca, the music label, but iTunes. iTunes may offer the options to define playlist samples and may offer the service samples which enable users to listen to the music selected in playlists. In this example, the term service used in the codes means an individual service or a sample. A more detailed elaboration of those codes is omitted here. They are referred to as “code playlist sample P”, “code service sample A”, and “code audio sample B”. The playlist itself contains just the sample codes and not the selected audio samples. As soon as the anonymous client gets access rights to the selected service sample A (here product sample A: the right to listen for a defined airtime to different songs on a playlist sample), he becomes a client and receives a unique client code (“code client C1”).

Examples of possible codes are: “itunes.apple.com/airtime10/20100101 for the service sample A” (template: service owner/service/release date sample) “itunes.apple.com/music/playlist0123456 for the playlist sample” (template: website owner/website type/playlist) “itunes.apple.com/20100422/FrankKist for the client” (template: client of/start date/client name)

The code “code client C1” (itunes.apple.com/20100422/FrankKist) and the code “code service sample A” (itunes.apple.com/airtime10/20100101) can be combined by the code engine with a code for the sample “client C1 bought service sample A”, and the code “code client audio service AC1 datatime1” (itunes.apple.com/airtime10/20100101/20100422/FrankKist/201004221203). The last shown segment is the date/time of buying the access rights related to service A on the playlist by the client. The client may receive an email or SMS with this code of the client service sample. The client may also receive security data for identification and authentication during the payment process. If the candidate user, who is buying a service, is a client already, he may receive a new code “code client service AC1 datetime2”. The value of the date/time segment may differ from the former codes. His existing code “code of the client C1” doesn't change because he is still the same person with the same role as a client. The segments in this example are only used for reference, and actual implementations may need more segments for unique identification.

The system relates the codes with each other and saves the sample codes and their relationships in an application related database. In the database, code “code client service AC1 datetime1” refers to code “code client C1” and code “code service sample A” contains the date and time of buying. Furthermore, the “code client service AC1 datetime1” may be sent as link in an email or SMS to the client's email/SMS address by the code engine.

FIG. 22 illustrates the steps of applying a code by a client/user who received the code by email or SMS, e.g., on his cell phone or iPod according to an embodiment. The client/user activates the “code client service PC1 datetime1” in his web browser. He gets access to the iTunes website, and after iTunes evaluates that the received code is correct and that the user has been authenticated, the user gets to his personal page e.g., with his playlist. From there he can update the playlist or define additional playlists, and he can listen to one or more of his playlists. The application may evaluate that the user has enough credit to listen to the playlist and can give signals and proposals of suggested actions.

During streaming or downloading, the code engine may create a log where the codes of the streamed audio samples, the client code, the sample code of the playlist, the code of the service sample, and the timestamp from the start of the streaming of each edition are related. The log and some user data can allow the intermediate to produce valuable user related information about favourites, combinations, action patterns, age, network, and others. Moreover, it may allow the legal entity of the audio sample (such as the music labels) to be interoperable with the intermediates and the client. In case of piracy, it could be applied as evidence of when and who streamed or downloaded the audio samples without legal permission of the owner. The log may be secured to prevent unauthorized access. From this it can be deduced who could be the source of illegal distribution starting with a legal streaming. Moreover, it may be proved that an audio sample was not received by a legal action, because it is not logged.

In one example a symphony with 4 movements is offered for streaming. An example is the audio sample Beethoven's Eroica, symphony nr 3. The Eroica is recorded e.g., by Willem Mengelberg 4th and 9th of January 1930 with the New York Philharmonic Orchestra for the label Victor, which does not exist anymore. In this example, Victor's rights have been taken over by Decca Classics. Thus, the legal entity music label is Decca Classics. Using the same template as aforementioned, the input identifier will look like “Decca Classics 1930 Beethoven Eroica Willem Mengelberg 09011930” and as code string of the sample is:

“www.deccaclassics.com/1930/Beethoven/Eroica/WillemMengelberg09011930”. For convenience, the code string of this sample is called CodeWM in the rest of the description.

It is desired that the movements of the audio sample should be streamed separately due to the behaviour of listeners. This means the movements of the symphony are unique samples in their own right and may need to be coded separately. The code strings may look like:

www.deccaclassics.com11930/Beethoven/Eroica/WillemMengelberg09011930/Allegro con brio www.deccaclassics.com/1930/Beethoven/Eroica/WillemMengelberg09011930/Marcia funebre: Adagio assai www.deccaclassics.com/1930/Beethoven/Eroica/WillemMengelberg09011930/Scherzo: Allegro vivace www.deccaclassics.com/1930/Beethoven/Eroica/WillemMengelberg09011930/Finale: Allegro molto

For convenience, the code strings are called CodeWMMov1, CodeWMMov2, Code WMMov3, and CodeWMMov4 (in total: movement sample codes) in the rest of the description. The cross references look like:

Parent Child Sequence CodeWM CodeWMMov1 1 CodeWM CodeWMMov2 2 CodeWM CodeWMMov3 3 CodeWM CodeWMMov4 4

Each child (a movement code) refers to its parent (the symphony code). The code engine relates the four movement codes to the CodeWM and defines the default sequence in case they are streamed as the symphony in its whole.

If the code CodeWM is applied, the engine knows that all four movements are meant, because this code stands for the whole symphony. If one of the movement codes is used, only a single movement will be streamed. This separation also enables Decca to define which movement is selected to be streamed as a free example on the Decca Classics website to serve interested users and their friends.

Several parent codes (e.g., the code of the symphony) as well as several child codes (e.g., the movement codes) can be elements of a set of codes; the set can be considered as a sample in its own right, and may need to be coded also. If the code of the set is applied, all elements of the set will be streamed.

The cross reference header would be as: set code, element code, sequence. Also, as used herein, “sequence” is the default sequence as intended by the set-creator/owner. The set user could change the sequence during his session.

An example, including aforementioned audio samples for set definitions:

Set code* Element code Sequence CodeS1 CodeWMMov1 1 CodeS1 CodeWM 2 CodeS1 Code Audiofile1234 3 CodeS2 CodeWM 1 CodeS2 Code Audiofile2345 2 CodeS2 Code Audiofile3456 3 CodeS2 CodeWMMov3 4

The set-codes could look like: www.deccaclassics.com/BeethovenBritten/Set1 www.deccaclassics.com/ClassicRockMix/Set2.

They could be interpreted as predefined playlists where e.g., the segment name BeethovenBritten indicates that the set contains coded samples of music from Beethoven and Britten.

FIG. 22 shows the principle of using such a set code in the context of a user defined set-code (that is code of a playlist sample). Other methods of using set codes could also be used. Also these principles are not limited to audio samples, but can also be applied to video samples (where the frames or a set of frames get their own code), and other samples such as books, games, and also documents in general (chapters, but also main documents and its attachments), news reports, and others.

Interactive code segments are code segments that can trigger the application where the coded sample is shown to interact with the user. The username as part of a code could trigger an authentication process, requiring the insertion of a password and/or a spoken sentence; the interaction could deny access to the user based on improper authentication data. This is different from a solution where the username has to be inserted by the user after the code is received at the target web server. In this latter case, the user must authenticate who he is before he shows that he has rights to access or use the items in question. This happens outside the code, without the participation of parts of the code. In some embodiments, the code contains the data about who the user is and the application reacts to the code submission. A part of the code participates in this process. Interactive code segments could also fulfil more sophisticated functions. For example, suppose a client as explained earlier logs in with his code “itunes.apple.com/FKUser%$#/airtime10/20100101/20100422/FrankKist/201004221203” “FKUser%$#” is the username, here encrypted. The user keeps this code on his cell phone in a menu option “My music”. He clicks the audio sample code. As soon as the code is received at iTunes, the code is evaluated to determine if it is valid and the user is asked to insert his password and speak the shown sentence into the microphone of his cell phone. His input may be compared with the authentication values in the iTunes DB. If the authentication is correct, his personal iTunes website and/or playlist is opened, otherwise access is rejected.

FIG. 23 shows another example for an interactive code segment according to an embodiment. Once a user reaches his predefined budget or spending limit, he may receive a code to buy new/more airtime and/or access rights to new audio samples in his playlist. To make it simple for the user, his known code is copied (the copy represents another sample, in this case a service as a sample such as an offer to buy a product sample or a service such as “airtime” for a particular user) and extended with an interactive segment that represents the Buy service and replacing the last segment with the offer date of the service. The date time in the last segment is replaced by the data time that the Buy service is offered. In this instance, the user buys the same product as default. The sent code could look like “itunes.apple.com/FKUser%$#/Buy/airtime10/20100101/20100422/FrankKist/20100425172 3”

In this instance, “Buy music/airtime” is an additional interactive code segment. The last segment is the date/time of code generation. If the user activates this code, it can trigger the buying procedure after successful login. Part of the login procedure can be an evaluation if the generation time of this code is still in a predefined interval for allowed activation. The login procedure could be succeeded by presenting a list with all products, with the focus on the one that is coded. The user can simply click this product or select another one.

After payment, the new combined code (here for another product sample with 20 hours airtime), e.g., “itunes.apple.com/FKUser%$#/airtime20/20100301/20100422/FrankKist/2010042552312” may be sent to the user or to the list in his mobile phone menu option “My music”.

FIG. 24 illustrates an example for integrating a service of one system into another one by applying interactive code segments according to an embodiment. A service could be made available on the iTunes user's personal website that offers the user the opportunity to integrate access to his playlist(s) into another account, for example, a social network account such as a Facebook account; see FIG. 24. Another service could be made available that offers making a playlist sample accessible for showing other users through the account, such as contacts or friends in a social network account such as his friends in Facebook account (see FIG. 25). In both cases it may be burdensome to install the combined client-product code into the account (e.g., social network account such as Facebook) each time that the user buys a new product. It may be more efficient to install the service code into the personal account such as “itunes.apple.com/Facebook/FKUser%$#/20100422/FrankKist/Facebook201004252313”. This code consists of the legal entity where the customer is registered, the additional intermediate, the encoded username, the customer registration date, the customer name and the identifier of the service plus date/time of generating the code. This date is also the date where the service is offered to the particular client. This code stands for a particular service (a service as sample), that is individualized by offering it at a particular moment to a particular client. Immediately after generation, the code may be sent to the user for insertion into his Facebook account. The code can be checked by the installation procedure so that the installation is done on the Facebook website and in the user's account. The installation procedure may be time-limited to a certain period after generation of the code. Enabling those checks may require cooperation between Facebook and iTunes or other partner websites and services. FIG. 24 shows an alternative solution according to an embodiment. The user uploads the received code as content of his Facebook account and activates the link from his Facebook account. The iTunes login procedure recognizes the code and evaluates its activation validity during the first time of activation. Afterwards, the default login procedure at iTunes's user's personal site is performed, and the user can activate the code when they are active on Facebook.

The numbers in the figure define the sequence of the activities, but other sequences using different steps or a different order of steps could also be used.

In this instance, the playlist sample is no longer part of the received code and the iTunes application must retrieve the playlist if the user has a valid playlist sample code at his disposal. This can be done easily because the client code is related with the adjusted playlist sample codes. The available budget is the sum of all valid playlist budgets in case that the user bought several service samples such as playlists. As mentioned, the user could also decide if he wants to show the titles of the music from his playlist in his Facebook account.

In this instance, the user needs to receive another service code and install this one in addition to the one he is using to listen to his playlist(s). This other code doesn't need a username segment (in the example it is FKUser%$#), as instead of the username it contains an interactive segment called “friends.”

An example of such a code could be “itunes.apple.com/Facebook/Friends/20100422/FrankKist/FacebookPlaylist201004290907”. The last segment contains again the service offer time, which may equal generation date/time.

The code can be installed in the Facebook account of the user. If activated, it will access the playlists of the person Frank Kist (via the relationships known in the iTunes database). However, the music in the playlist(s) is not streamed after this code activation. Only some metadata of the edition samples are shown in list form; additional parts of a sample could be streamed if the edition sample entry in the list is clicked on which enables sharing of the user's music with the user's friends. The list is not stored in the social network account (Facebook in this example); it is opened on its original location on the iTunes website. As shown in FIG. 25 according to an embodiment, there could be other services available, such as becoming a customer and copying the playlist. Activating this service could involve opening a new personal page in the iTunes website, collecting the user identifying data for becoming a customer. Additional, the desired copies of the playlist(s) may be made automatically; however the copies may receive a new code because they are now playlist samples for the new customer and he could modify them in his personal page. The user can listen to the music from these playlists only after buying a product himself, receiving the code, activating the code, logging in, and other steps.

Security and Privacy Considerations

Privacy: One privacy concern that may arise is how to appropriately deal with data specifically relating to individuals. In an embodiment, the system obtains an explicit agreement of each user prior to the usage of the data for other purposes than the intended one as given by the user. The agreement provided by each user plus the purpose of the agreement can be documented on the system. Access functionality of the application helps ensure that access to personal data is controlled. In an embodiment for particular applications where it is desirable that it doesn't become public that a particular person is using a code at all, all associated personal data as part of a code (code segments) can be communicated in an encrypted or aliased form.

Correctness of a code: Each received code may be evaluated against the codes in the database. The evaluation procedure only continues if a received code exists and has not already been deleted.

If a code contains security information in a code segment such as the user name or a name of a sensitive service, these segments can be encrypted or aliased to enhance privacy and security. The code could also be extended by a segment that contains validity data, e.g., a hash value of the rest of the code string or a part of it. After receiving the code and evaluating the code against the database for an existence check, the validity data may also be controlled as well. This can be implemented for particular application types, because the original code could be alternated into one that already exists in the database, e.g., by analyzing the pattern of codes by a criminal user.

User identification and authentication: Different types of control means can be combined dependent on the specific requirements for the sample and need for privacy of the user. The user's identity can be controlled by requiring a username that must be provided each time the user submits a code evidencing that he has knowledge of a required element, or as part of the submitted code itself in a plaintext, encrypted, or aliased form, which also shows that a user possesses a required element. The authentication of the user's identity can be implemented (i) by testing the knowledge of the user with a password and/or a question-answer game, or other options; (ii) by showing that the user possesses requisite criteria, such as the IP address of the device which is used to send the code and/or the code itself with at least a special segment, or other options; or (iii) by checking personal characteristics of the user through biometric means like voice, retina, and/or fingerprint recognition, having the user provide a manual or electronic signature, or other options.

A code for public usage, e.g., for reactions by receivers of a commercial message, may not need user identification or authentication. If the IP address of such an anonymous user is saved by the accessed commercial institution, the user may need to be informed about this and given the opportunity not to access the commercial site which may also possibly implicate privacy concerns.

Technical means such as firewalls, packet filters, DOS-attack defences, and others may be applied to prevent Internet Protocol Spoofing aimed at misusing or masquerading as the IP address of the legal entity or of the intermediate.

Access to the sample or the sample's digital representation and specializing data: State of the art functionality may be applied to encapsulate the sample's data and enable access only via the codes and the related functions. The functions may also be encapsulated to prevent manipulation. One other threat is via a criminal system administrator or a successful attack on the administrator's account. A periodic audit of all actions can be used, and access to the audit logs can also be controlled.

Tracking and tracing of the sample and its digital and physical representations: all physical and digital samples or representations of samples can be marked with their code. Dependent upon the specific sample, receivers of a code may also be coded as well and such a code plus the sample's code can be printed on or implemented in the sample to show which receiver handled a sample, downloaded a copy, printed it, or took other actions with regards to the specific sample.

All sample codes may contain the sample's legal entity as part of the code.

It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. Use of the verb “comprise” and its conjugations does not exclude the presence of elements or steps other than those stated in a claim. The article “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be advantageously used. 

1. A method for compiling a unique sample code for a digital sample, comprising: defining at least one sample code template comprising multiple sample code segments to be used for building a sample code for a digital sample, said sample code segments at least comprising: a sample owner identifying code segment; and a sample identifying code segment; specifying the content of the sample code segments to be used for building said sample code, wherein the sample owner identifying code segment is specified by an Internet address of an owner of the digital sample stringing the specified sample code segments to form the sample code; defining a digital path to a digital location via which access can be gained to the digital sample; and creating a cross-reference between the sample code generated during the stringing of the specified sample code segments and the digital path defined during the defining of the digital path if the sample code and the digital path are mutually distinctive.
 2. (canceled)
 3. The method according to claim 1, wherein the digital path refers to a digital location where the digital sample is stored.
 4. The method according to claim 1, wherein the method further comprises storing the sample code, the digital path, and the cross-reference between the sample code and the digital path in a database.
 5. The method according to claim 1, wherein the sample code segments further comprise a user related code segment.
 6. The method according to claim 1, wherein the sample code segments further comprise an intermediary code segment. 7-8. (canceled)
 9. The method according to claim 1, wherein the sample identifying code segment is specified by identifiable metadata relating to the digital sample. 10-11. (canceled)
 12. The method according to claim 1, wherein the sample code segments further comprise a checking code segment representing the result of a predetermined mathematical processing of at least one other sample code segment.
 13. The method according to claim 1, wherein the sample code segments further comprise a sample code security identifying code segment. 14-35. (canceled)
 36. A method for distributing a digital sample, the method comprising: generating a sample code associated with a digital sample from among a plurality of digital samples, including: creating a first code segment for the sample code that identifies a source of the digital sample for the sample code; obtaining metadata regarding the digital sample; creating a second code segment for the sample code that identifies the digital sample for the sample code using the metadata regarding the digital sample; and combining the code segments; transmitting the generated sample code to a user; receiving the generated sample code from the user; and in response to the generated sample code received from the user, transmitting the digital sample to the user.
 37. The method of claim 36 wherein the plurality of code segments further comprises a generated segment created by inputting metadata associated with the digital sample into a code generator.
 38. A content-distribution system, comprising: one or more servers comprising a plurality of computer processors; a database coupled to at least one of the servers for storing a plurality of digital content items; and a resource for providing access to the digital content items, the resource including: logic that specifies the contents of sample code segments to be used for building a sample code for a digital content item from among the digital content items, wherein a first code segment that identifies an owner of the digital content item is specified by an owner of the digital content item; logic that strings the specified sample code segments to generate the sample code; logic that defines a digital path to a digital location via which access can be gained to the digital content item; and logic that creates a cross-reference between the sample code generated and the digital path defined.
 39. The content-distribution system of claim 38, wherein the digital content items comprise files, in particular music files, and/or a set of multiple files.
 40. The content-distribution system of claim 38, wherein the digital content items comprise text files, in particular mail messages.
 41. The content-distribution system of claim 38, wherein the digital content items comprise image files.
 42. The content-distribution system of claim 38, wherein the digital content items comprise books.
 43. The content-distribution system of claim 38, wherein the digital content items comprise legal documents.
 44. The content-distribution system of claim 38, including a resource that receives additional digital content items, stores the additional digital content items in the database and causes the resource for providing access to the digital content items to build sample codes for the additional digital content items.
 45. The content-distribution system of claim 38, including: a resource to cause the sample code to be transmitted from at least one of the one or more servers to remote user devices; and a resource to cause digital content items to be transmitted from at least one of the one or more servers to respective remote user devices based on the respective sample code.
 46. The content-distribution system of claim 38, including a resource to cause remote user devices to present an option to purchase the digital content items that will be provided from at least one of the one or more servers based on the respective sample code.
 47. (canceled)
 48. The content-distribution system of claim 38, including a resource to obtain information regarding user usage of digital content items in the database. 49-62. (canceled) 